#ifndef PUBMEDGFFREADER_H
#define PUBMEDGFFREADER_H

#include <QObject>
#include <QString>
#include <QDebug>
#include <QProcess>
#include <QFile>
#include <QDir>
#include <QApplication>
#include <QThread>
#include <QUrl>

#include "../BaseDataManagement/gffreader.h"
#include "pubmedgenomeelementdatapacket.h"

class PubMedGffReader : public GffReader
{
    Q_OBJECT
public:
    explicit PubMedGffReader(QString gffFileName, QHash<QString, QString> clusterHashTable, QObject *parent = 0);
    
signals:

public slots:
    void process();

private:
    QHash<QString, QString> clusterHashTable;/**cluster hash table passed in as variable.  Stores relationship between geneId and clusterId.  geneId.contains(clusterKey) == true if it is a match.*/
    QString speciesName;

    void processRemainingData( QStringList &tokens, QString& parentContigId, bool& hasCluster, QString& clusterId,
                               bool& hasSpecies, QString& species, QString& id, QString& name, QString& product, QString& parentElement );
};

#endif // PUBMEDGFFREADER_H
